home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung / Power-Programmierung (Tewi)(1994).iso / magazine / pctchnqs / 1991 / number2 / demo.cpp < prev    next >
C/C++ Source or Header  |  1991-04-02  |  3KB  |  84 lines

  1. // ==========================================================
  2. // Listing 3: demo.cpp
  3. // C++ code for demonstration of Heap class.
  4. // Copyright (C) 1991 by Nicholas Wilt.  All rights reserved.
  5. // ==========================================================
  6. // Refer to the MAKEFILE listing (Listing 4) for dependencies
  7. // ----------------------------------------------------------
  8.  
  9. #include <iostream.h>
  10. #include "heap.h"
  11.  
  12. // ------------------------------------------------------
  13. // This is the comparison function for ASCENDING integers
  14. // ------------------------------------------------------
  15. int comp_ints(void *a, void *b)
  16. {
  17.   return( *((int *) a) - *((int *) b));
  18. }
  19.  
  20. // ---------------------------------------------------------
  21. // This is the comparison function for DESCENDING characters
  22. // ---------------------------------------------------------
  23. int comp_char(void *a, void *b)
  24. {
  25.   return( *((char *) b) - *((char *) a));
  26. }
  27.  
  28. // ==============================================================
  29. main()
  30. {
  31.   // An unordered set of integers
  32.   int numbers[20] = {1, 2, 4, 5, 3,
  33.                  19, 15, 18, 0, 13,
  34.                  11, 14, 12, 16, 17,
  35.                  6, 9, 8, 7, 10};
  36.  
  37.   // An unordered set of characters
  38.   char letters[34] = {"THEQUICKBROWNFOXJUMPSOVERLAZYDOGS"};
  39.                     // 123456789012345678901234567890123
  40.  
  41.   Heap h(comp_ints);  // A heap instance for the integers
  42.   Heap ch(comp_char); // A heap instance for the characters
  43.  
  44.   int i;
  45.  
  46. // --------------------------------------------------------
  47. // Start with the integer data...
  48. // --------------------------------------------------------
  49.   // Print out numbers before sorting
  50.   for (i = 0; i < 20; i++)
  51.     cout << numbers[i] << ' ';
  52.   cout << '\n';
  53.  
  54.   // Insert numbers into heap
  55.   for (i = 0; i < 20; i++)
  56.     h.Insert(numbers+i);
  57.  
  58.   // Print out numbers in order extracted from heap
  59.   // (In this case, in ASCENDING order.)
  60.   for (i = 0; i < 20; i++)
  61.     cout << *((int *) h.Extract()) << ' ';
  62.   cout << '\n';
  63.  
  64. // --------------------------------------------------------------
  65. // Now, try the character data...
  66. // --------------------------------------------------------------
  67.  
  68.   // Print out letters before sorting
  69.   for (i = 0; i < 33; i++)
  70.     cout << letters[i] << ' ';
  71.   cout << '\n';
  72.  
  73.   // Insert letters into heap
  74.   for (i = 0; i < 33; i++)
  75.     ch.Insert(letters+i);
  76.  
  77.   // Print out letters in order extracted from heap
  78.   // (In this case, in DESCENDING order.)
  79.   for (i = 0; i < 33; i++)
  80.     cout << *((char *) ch.Extract()) << ' ';
  81.   cout << '\n';
  82.  
  83. }
  84.